/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufc.quixada.adrs.comandos.adrs;

import br.ufc.quixada.adrs.interfaces.Comando;
import br.ufc.quixada.adrs.model.Adrs;
import br.ufc.quixada.adrs.model.Prazo;
import br.ufc.quixada.adrs.model.Produtor;
import br.ufc.quixada.adrs.service.ProdutorService;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 *
 * @author Escritorio projetos
 */
public class CmdListarProdutoreNaoVisitados implements Comando {

    public String executa(HttpServletRequest request, HttpServletResponse response) {
        HttpSession session = request.getSession();
        Map<Prazo, Boolean> prazos = (Map<Prazo, Boolean>) session.getAttribute("prazosAdrs");
        String sPrazoId = request.getParameter("prazo_id");
        Adrs adrs = (Adrs) session.getAttribute("user");
        Long prazoId = Long.parseLong(sPrazoId);
        Prazo prazo = null;
        for (Prazo pTemp : prazos.keySet()) {
            if (pTemp.getId().compareTo(prazoId) == 0) {
                prazo = pTemp;
                break;
            }
        }
        ProdutorService produtrS = new ProdutorService();
        List<Produtor> produtores = new ArrayList<Produtor>();

        if (prazo.isSanitario()) {
            produtores = produtrS.getProdutoresForaPrazoSanitario(prazo, adrs);
        } else if (prazo.isQuantitativo()) {
            produtores = produtrS.getProdutoresForaPrazoQuantitativo(prazo, adrs);
        } else if (prazo.isQualitativo()) {
            produtores = produtrS.getProdutoresForaPrazoQualitativo(prazo, adrs);
        }
        session.setAttribute("produtoresNaoVisitados", produtores);
        session.setAttribute("prazoAtual", prazo);
        return "/adrs/adrs_produtores_nao_visitados.jsp";
    }
}
